Applications that are employed to enable users to access information typically employ a user interface that is specifically designed to enable a user to selectively display data about a subject from among different categories of information. Since an application typically defines the specific appearance of each user interface, the content that can be accessed using control buttons, menus, and other interface elements in each user interface of the application will normally be statically defined when the application is released for distribution. The constraints imposed by a user interface that is statically defined will thus preclude making changes in the information content that can be selected with controls in the user interface after the application is distributed. For example, if at the time an application was released for distribution, it included a user interface that enabled users to select from among five different sources of information, it would typically be necessary to rewrite the code that defines the user interface to enable users to access additional sources of information that later become available. Typically, an update of the application would have to be written and released for installation by users. Specifically, the user interface would need to be changed to include control buttons or other control elements for selectively accessing the additional information sources. Furthermore, each time that additional information sources are added, yet another update of the application with a rewritten and revised user interface must be manually written and released for installation by the user of the application. Clearly, for applications in which the content or information that is accessed by selections made in a user interface changes frequently, the need to continually modify the user interface to enable selection of the changing content creates a substantial problem, because the cost of updating the applications with each new user interface represents a significant overhead.
A related problem exists in applications that are “localized” for release in different languages and cultures. The customization of different versions of a software application to provide appropriate user interfaces for each different language and/or culture is referred to as “localization.” The localization of the user interfaces in an application will typically require that each control button or other control elements within the user interfaces of the application be provided in the language of the region in which that version of the application will be released. Also, different user interfaces are necessary to satisfy the cultures preferences for each different localization region. Even though users in two different geographic regions nominally speak the same language, there are often differences in spelling of words that might appear in a user interface. In addition, differences in the cultures may require changes be made in the user interfaces of an application distributed to different regions. For example, differences in the culture, interests, geography, and the history of the people in Mexico compared to those in Spain or other Spanish speaking countries may require that an dictionary application distributed in Mexico include different content than the same application distributed in Spain. Thus, the user interfaces provided in the dictionary application sold in each region must normally be custom designed and written specifically for each region in which the dictionary application will be sold. The cost and problems involved in providing localized content and in supporting different user interfaces needed to access the localized content for all of the major geographical/cultural regions of the world are very significant. The time required for such localization tends to delay the release of new applications.
Accordingly, it would be extremely beneficial to develop an approach that enables user interfaces in an application to be dynamically modified in response to the specific information that is accessible through the user interfaces. Further, it would be desirable to enable a user interface to automatically adapt to changes in content included in an application, so that localization of the application to different regions can be done without writing specific user interfaces for each different region. Currently, user interfaces in an application do not react dynamically to changes in information content accessed within the application. By enabling the content to include instructions needed to dynamically alter the features and control elements included within a user interface so that users can access the content within the application, the need for manually rewriting the user interface will be eliminated, thereby providing a substantial improvement in efficiency and a reduction in the costs incurred to create and maintain such applications.